package backend.project.gym_management.service.impl; // 声明包名，定义该类属于哪个包

import backend.project.gym_management.mapper.EmployeeMapper; // 导入员工数据访问接口
import backend.project.gym_management.mapper.UserMapper; // 导入用户数据访问接口
import backend.project.gym_management.pojo.entity.Employee; // 导入员工实体类
import backend.project.gym_management.pojo.entity.User; // 导入用户实体类
import backend.project.gym_management.service.AuthService;
import org.springframework.beans.factory.annotation.Autowired; // 导入Spring的依赖注入注解
import org.springframework.stereotype.Service; // 导入Spring的服务层注解

// AuthService.java（登录与注册逻辑）
@Service // 标记该类为Spring的服务组件
public class AuthServiceImpl implements AuthService {
    @Autowired // 自动注入UserMapper实例
    private UserMapper userMapper;
    @Autowired // 自动注入EmployeeMapper实例
    private EmployeeMapper employeeMapper;

    // 用户登录验证方法
    public User userLogin(String account, String password) {
        User user = userMapper.findByAccount(account); // 根据账号查询用户
        if (user == null || !user.getPassword().equals(password)) { // 如果用户不存在
            throw new RuntimeException("账号或密码错误"); // 抛出异常
        }
        // 密码验证逻辑移至 RoleInterceptor
        return user; // 返回查询到的用户对象
    }

    // 员工登录验证方法
    public Employee employeeLogin(String account, String password) {
        Employee employee = employeeMapper.findByAccount(account); // 根据账号查询员工
        if (employee == null||!employee.getPassword().equals(password)) { // 如果员工不存在
            throw new RuntimeException("账号或密码错误"); // 抛出异常
        }
        // 密码验证逻辑移至 RoleInterceptor
        return employee; // 返回查询到的员工对象
    }

    // 用户注册方法
    public void register(User user) {
        if (userMapper.findByAccount(user.getAccount()) != null) { // 检查账号是否已存在
            throw new RuntimeException("账号已存在"); // 如果存在，抛出异常
        }
        userMapper.insert(user); // 插入新用户到数据库
    }
}
